package com.project.annotation;

import com.project.enums.Logical;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 方法级别权限控制 - 可覆盖接口级别的权限设置
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface MethodPermission {

    /**
     * 所需权限列表
     */
    String[] permissions() default {};

    /**
     * 所需角色列表
     */
    String[] roles() default {};

    /**
     * 权限检查逻辑
     */
    Logical logical() default Logical.AND;

    /**
     * 是否启用权限检查
     */
    boolean enabled() default true;
}